In the area of software engineering, model repositories play a central role in the development and maintenance of large enterprise software systems. Model repositories store object models used to represent data and business functions. A complex software system has many facets, many levels of abstraction and many views, such as an analysis view, a design view, a GUI view, a database view, an architectural view, and so on.
One problem with prior-art modeling repositories is that they do not provide model views for all facets of software development and use. It is desired that a model repository provide modeling abstractions to capture all of the above-described views in a consistent manner. At the time of writing of this specification however, there is no standard modeling methodology or apparatus that provides all system views. To compensate for this weakness, companies provide model repositories that have some form of extensible meta-modeling framework that enables users to extend the modeling system with abstractions of their own. Using the extensibility features, users may program their own system views.
Although repositories with extension capabilities are available and facilitate user-created models, there is no built-in support for rendering the extended models in a visual, diagrammatic language. This has long been an area where generic repository systems have been weak. This is just one of the handicaps affecting wider acceptance of these repositories in the market place.
There are many commercial repository systems that provide extensibility around standard methodologies like Unified Modeling Language (UML). UML is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. UML gives you a standard way to write a system's blueprints, covering conceptual things such as business processes and system functions, as well as concrete things such as classes written in a specific programming language, data base schemas, and reusable software components.
Another example of a commercial repository system is Entity Relationship (ER) modeling. Typically, repository systems are packaged with a visual modeling tool that supports these standard methodologies either directly or in the form of a bridge to third party modeling tools (e.g.: Rational Rose). However, they do not provide any built-in support that enables end-users to easily specify visual diagrammatic notation for modeling abstractions introduced by them. An end-user either has to be content with a generic, non-diagrammatic interface or build a graphical system from scratch if they want to provide visual modeling capability to abstractions introduced by them.
Therefore, what is clearly needed is a system, method, and apparatus that enables end-users to specify a concrete graphical notation for abstract models of various system views, without having to program them from scratch using code.